failed to allocate for range 0: no IP addresses available in range set: 10.244.0.1-10.244.0.254
某日发现 kubernetes 集群中经常发生 pod 创建失败的问题,经观察发现,出现问题的 pod 都又一个共同点:被调度到了同一个 cluster node 上,进一步分析后怀疑问题与该节点有关。
所以先使用 node shell 登录到该节点
kubectl node-shell ${NodeName}
因为我们的 k8s 集群使用的网络组件是 kubenet
,所以直接进入 kubenet 所在目录,并列出该文件夹下的所有文件:
cd /var/lib/cni/networks/kubenet
ls
发现果然 ip 段内的所有ip都被占用了。
✦ 那么解决方式也已经很明确了,只需要删除该文件夹下所有 “本该被释放但依然是占用状态的 ip 文件” 即可。
退出 node shell 之后,我们可以使用下面的命令来查询目前实际使用的 ip 地址
# linux 环境请将 sls 替换为 grep
kubectl get po -A -o wide | sls '10.244.'